import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Example38 {
    public static void main(String[] args) {
        Pattern p=Pattern.compile("\\d+");
        Matcher m=p.matcher("22bb23");
        System.out.println("字符串是否匹配:"+ m.matches()); // 结果：false, 解释：字符串中含有非数字字符“bb”，匹配失败
        Matcher m2=p.matcher("2223");
        System.out.println("字符串2223与模式p是否匹配:"+ m2.matches()); // 结果：true，解释：纯数字字符，匹配成功
        System.out.println("字符串22bb23与模式p的匹配结果:"+ m.lookingAt()); // 结果：true，解释：字符串22bb23的第一个字符为数字，匹配成功
        Matcher m3=p.matcher("aa2223");
        System.out.println("字符串aa2223与模式p的匹配结果:"+m3.lookingAt()); // 结果：false，解释：字符串aa2223的第一个字符非数字，匹配失败
        System.out.println("字符串22bb23与模式p是否存在下一个匹配结果:"+
                m.find()); // 结果：true，解释：字符串22bb23的第二个字符为数字，匹配成功
        m3.find();//返回true
        System.out.println("字符串aa2223与模式p是否存在在下一个匹配结果："+
                m3.find()); // 结果：false，解释：字符串aa2223的第二个字符非数字，匹配失败
        Matcher m4=p.matcher("aabb");
        System.out.println("字符串aabb与模式p是否存在下一个匹配结果："+
                m4.find()); // 结果：false，解释：字符串aabb的第二个字符非数字，匹配失败
        Matcher m1=p.matcher("aaa2223bb");
        m1.find();//匹配2223
        System.out.println("模式p与字符串aaa2223bb的匹配的起始索引:"+
                m1.start()); // 结果：3，解释：字符串中第一次匹配成功的字符索引为3
        System.out.println("模式p与字符串aaa2223bb的最后一个字符匹配后的偏移量"+
                m1.end()); // 结果：7，解释：最后一个匹配字符成功的索引为7
        System.out.println("模式p与字符串aaa2223bb的匹配到的子字符串:"+
                m1.group()); // 结果：2223，解释：匹配成功的子字符串为2223
        Pattern p2 = Pattern.compile("[/]+");
        Matcher m5 = p2.matcher("张三/李四//王五///赵六");
        System.out.println("将字符串张三/李四//王五///赵六中的/全部替换为|:"+
                m5.replaceAll("|")); //结果：张三|李四|王五|赵六，解释：将目标字符串中出现"/"一次或多次的字符串全部替换为"|"
        System.out.println("将字符串张三/李四//王五///赵六中的首个/替换为|:"+
                m5.replaceFirst("|")); //结果：张三|李四//王五///赵六， 解释：将目标字符串中第一次出现"/"一次或多次的字符串全部替换为"|"
    }
}
